Ну, с загадкой делать ничего не буду, ибо есть люди, которые смогли ее осилить, значит, не особенно она тяжкая.
А вот код заменю с выборного на числовой, чтобы не лагало ни у кого больше.